Apprendimento Supervisionato
★★★★☆ Overfitting, errore di training vs test e gestione train/validation/test ricorrono in continuazione nei vero/falso, negli snippet di codice e in due domande aperte dedicate.
L’apprendimento supervisionato è il paradigma di machine learning più popolare e consolidato. L’idea di fondo è semplice e potente: invece di scrivere a mano le regole che risolvono un compito, si mostrano alla macchina molti esempi di input insieme alla risposta corretta, e si lascia che sia un algoritmo a ricostruire la regola che lega i primi alla seconda. È lo stesso modo in cui si insegna a un bambino a riconoscere gli animali: non gli si dà la definizione formale di “cane”, gli si mostrano tanti cani dicendo “questo è un cane”.
Questo capitolo costruisce il framework formale che sta dietro a tutti i metodi supervisionati che verranno studiati in seguito: la funzione target ignota, il dataset di esempi, l’hypothesis space (spazio delle ipotesi), la loss function (funzione di perdita) e l’ottimizzazione. Vengono poi presentati i tre ingredienti che definiscono ogni algoritmo supervisionato, la distinzione tra regressione e classificazione, una tassonomia degli approcci e, infine, la questione più profonda di tutte: che cosa rende possibile generalizzare da esempi finiti a situazioni mai viste.
1. Il problema: imparare una funzione dagli esempi#
1.1 La funzione target ignota e il dataset#
Si parte dall’assunzione che esista, in natura o nel dominio applicativo, una relazione sistematica tra un input e un output: c’è “qualcosa” che, data una radiografia, determina se contiene una lesione; c’è “qualcosa” che, date le caratteristiche di un’automobile, determina quanto un certo acquirente sarebbe disposto a pagarla. Questa relazione viene modellata come una funzione, che però nessuno conosce esplicitamente: la si osserva soltanto attraverso esempi.
Idea chiave: l’apprendimento supervisionato è il problema di ricostruire una funzione ignota osservando soltanto un numero finito di coppie input-output generate da essa.
I dati provengono da una funzione ignota che mappa un input in un output , cioè . È dato un dataset di coppie
e l’obiettivo è apprendere una buona approssimazione di .
- Input : le variabili di ingresso, dette solitamente features o attributi; descrivono ogni esempio (i pixel di un’immagine, le caratteristiche di un’auto, le misure di un paziente).
- Output : le variabili di uscita, dette target o label; rappresentano la risposta corretta associata a ciascun input.
- Funzione target : la vera relazione, ignota, tra input e output; è l’oggetto che si vuole approssimare.
In parole semplici: esiste una “regola vera” che collega domande e risposte, ma nessuno la conosce. Abbiamo solo un elenco di domande con la risposta giusta accanto. Il compito è indovinare la regola a partire da quell’elenco, così da poter rispondere anche a domande nuove.
Il nome “supervisionato” viene proprio dalla struttura del dataset: serve un supervisore, tipicamente un essere umano o un processo di misura, che fornisca per ogni input anche l’output atteso. Non bastano i dati grezzi: senza le etichette il problema cambia natura e si ricade nel paradigma non supervisionato. Sembra un’osservazione ovvia, ma nella pratica professionale è una fonte costante di equivoci: “avere i dati” non significa avere i dati etichettati, e per molti modelli le etichette sono esattamente la parte costosa e preziosa.
In base alla natura del target il problema prende nomi diversi.
- Classificazione: è una variabile discreta, cioè un’etichetta scelta in un insieme finito di possibilità (sano/malato, cifra da 0 a 9, compro/non compro).
- Regressione: è una variabile continua, un valore numerico (un prezzo, una temperatura, un’età).
- Stima di probabilità: è una probabilità, quindi un numero vincolato all’intervallo ; è un tipo molto specifico di regressione, per certi versi ibrido con la classificazione, perché il numero stimato è tipicamente legato alla scelta di una classe.
In parole semplici: se la risposta da prevedere è una scelta tra categorie, è classificazione; se è un numero su una scala continua, è regressione; se è “quanto è probabile che…”, è stima di probabilità, cioè una regressione con output tra 0 e 1.
Qualche esempio concreto rende viva la distinzione. Nella classificazione, ogni punto del dataset potrebbe essere un’auto e l’etichetta “la comprerei” oppure “non la comprerei”: l’obiettivo è costruire un modello di decisione capace di discriminare le due classi, cioè di separare i punti di un tipo da quelli dell’altro. Nella regressione, gli stessi punti-auto hanno come target la cifra che quella persona sarebbe disposta a spendere: l’obiettivo è prevedere un valore numerico, non una categoria. Un altro esempio di regressione è stimare l’età di una persona a partire da una sua fotografia; lo stesso dominio, le fotografie di volti, può dare luogo a un problema di classificazione se il target diventa un’etichetta binaria.
1.2 Quando conviene l’apprendimento supervisionato#
L’apprendimento supervisionato non è la soluzione a ogni problema: è la scelta giusta in situazioni ben riconoscibili, accomunate da un tratto: abbiamo (o possiamo procurarci) molti esempi input-output, ma è difficile o impossibile scrivere a mano un programma che colleghi gli uni agli altri.
- Quando l’essere umano non sa svolgere il compito. Esempio: l’analisi del DNA, dove non esiste un esperto in grado di leggere direttamente la risposta.
- Quando l’essere umano sa svolgere il compito ma non sa spiegare come. Esempio: l’analisi di immagini mediche. Un radiologo esperto riconosce una lesione, ma fatica a formalizzare il proprio processo cognitivo in regole esplicite; tradurre la sua competenza in un programma tradizionale è quindi impraticabile. Con l’apprendimento supervisionato basta chiedergli di etichettare quante più immagini possibile: il modello imparerà a fare ciò che lui fa, anche se lui non sa dire come lo fa.
- Quando il compito cambia nel tempo. Esempio: la previsione dei prezzi azionari. I mercati finanziari sono fortemente non stazionari: se anche si trovasse una regola di trading che funziona, nel momento in cui viene identificata è già destinata a sparire. Scrivere e riscrivere un programma a mano a ogni deriva del compito è insostenibile; un sistema che riapprende dai dati può adattarsi rapidamente.
- Quando il compito è specifico dell’utente. Esempio: la raccomandazione di film. Non serve un modello dei gusti cinematografici “in generale”, serve un modello dei gusti di quella persona, e questo può essere appreso solo dai suoi dati.
In parole semplici: il machine learning supervisionato conviene quando è più facile procurarsi esempi giusti che scrivere le regole giuste. Se un esperto sa etichettare ma non sa spiegare, o se le regole invecchiano in fretta, gli esempi sono la strada migliore.
1.3 I dati reali sono rumorosi#
Immaginando un problema di regressione con una sola variabile di input e il target sull’altro asse, la funzione target è una curva nel piano. I punti del dataset, però, non giacciono mai esattamente su quella curva: i dati del mondo reale sono sempre affetti da un certo livello di rumore, dovuto a errori di misura, fattori non osservati, variabilità intrinseca del fenomeno. Il modello generativo realistico è quindi
dove è una componente di rumore. I punti “seguono” la curva senza appartenerle esattamente. Tutti i modelli e gli algoritmi di machine learning sono progettati aspettandosi questo scenario: il rumore non è un’anomalia, è la condizione normale di lavoro.
In parole semplici: anche se la regola vera esiste, gli esempi che osserviamo ne sono versioni leggermente sporcate. Un buon algoritmo non deve inseguire ogni singolo punto alla perfezione, perché parte di ciò che vede è disturbo, non segnale.
2. La formalizzazione: hypothesis space, loss e ottimizzazione#
2.1 Restringere la ricerca: l’hypothesis space#
Conviene ora assumere la prospettiva di chi progetta un algoritmo di apprendimento supervisionato, non di chi lo applica. Il compito è: dato , trovare una buona approssimazione di . Ma dove cercarla? In linea di principio la si dovrebbe cercare nell’insieme di tutte le possibili funzioni che mappano l’input nel target. Questo insieme è sconfinato: cercare lì dentro è impossibile, sia dal punto di vista computazionale sia, come si vedrà, dal punto di vista concettuale. Da ingegneri, occorre restringere la ricerca a un sottoinsieme di funzioni scelto in anticipo.
Idea chiave: non si può cercare l’approssimazione di tra tutte le funzioni possibili; si sceglie a priori una famiglia ristretta di funzioni candidate, l’hypothesis space, e si cerca la migliore all’interno di quella famiglia.
L’hypothesis space è l’insieme delle funzioni candidate tra cui l’algoritmo cerca l’approssimazione di . Ogni elemento è detto ipotesi.
Un esempio classico: nel problema di regressione a una variabile si può decidere che le funzioni candidate siano tutte e sole le rette del piano, cioè le funzioni della forma . Questo definisce un hypothesis space : un piccolo ovale dentro l’enorme insieme . La scelta ha un prezzo evidente: se la vera non è una retta, allora , e nessuna ricerca, per quanto perfetta, potrà mai trovarla. Ci si accontenta di trovare, dentro , il punto più vicino a .
In parole semplici: è come cercare le chiavi perse: non si può setacciare tutta la città, si decide prima in quali stanze guardare. Se le chiavi sono in una stanza esclusa dalla ricerca, non le troveremo mai; ma senza restringere la ricerca non si comincia nemmeno.
2.2 Misurare l’errore e ottimizzare#
Scelto dove cercare, serve un criterio per confrontare le ipotesi tra loro: una funzione che dica quanto è grande l’errore che un’ipotesi commette nell’approssimare . Nel linguaggio dell’ottimizzazione si parlerebbe di funzione obiettivo; in machine learning si chiama loss function.
Una loss function è una funzione che misura quanto un’ipotesi approssima male la funzione target: più grande è il suo valore, peggiore è l’approssimazione.
A questo punto il quadro complessivo dell’apprendimento supervisionato si compone di tre passi:
- definire una loss function ;
- scegliere l’hypothesis space ;
- trovare in l’approssimazione di che minimizza , cioè risolvere
Il terzo passo è un problema di ottimizzazione, e per risolverlo si può ricorrere a un qualunque algoritmo di ottimizzazione adatto alla forma di e di . Geometricamente: dentro l’ovale l’ottimizzatore trova il punto più vicino a , dove “vicino” è misurato dalla loss.
In parole semplici: l’apprendimento diventa una gara tra funzioni candidate: la loss è il punteggio (più basso è, meglio è) e l’ottimizzatore è il meccanismo che scorre le candidate per trovare quella col punteggio migliore.
2.3 Il problema nascosto: la vera loss non esiste#
A questo punto viene naturale un’obiezione: se la scelta di (le rette) ci impedisce di raggiungere , perché non scegliere una famiglia più ricca? Si può passare, per esempio, ai polinomi di grado 9: lo spazio risultante è molto più grande e, per costruzione, contiene , perché un polinomio con tutti i coefficienti nulli tranne i primi due è esattamente una retta. Se è abbastanza ricco da contenere , allora, con un buon algoritmo di ottimizzazione (anche numerico), si troverà : approssimazione senza errore, problema risolto.
Questo ragionamento contiene però un errore fatale, ed è l’errore più istruttivo di tutto il capitolo: la loss usata finora era definita come la distanza tra l’ipotesi e la vera funzione . Ma è ignota: è esattamente ciò che si sta cercando. Se si potesse calcolare la distanza da , si conoscerebbe già e non ci sarebbe nulla da imparare. Quella loss “perfetta” non è disponibile, in nessun caso.
Idea chiave: la loss ideale, la distanza dall’ignota , non è calcolabile. L’unica cosa disponibile sono i dati: la loss va costruita a partire dal dataset, e diventa così una approssimazione della loss vera, con un paesaggio potenzialmente molto diverso.
Che cosa si può fare, allora? Costruire una loss empirica basata solo su . Per la regressione una scelta tipica è: calcolare, su ogni punto del dataset, l’errore commesso dall’approssimazione, elevarlo al quadrato e sommare su tutti i punti:
Questa funzione è calcolabile, perché usa solo quantità note. Ma il suo paesaggio, cioè la forma della superficie che l’ottimizzatore esplora, è in generale diverso da quello della loss vera. Ed è qui che il problema diventa davvero complesso: l’ottimizzatore trova la soluzione migliore dentro o secondo la loss empirica, ma questa soluzione può essere pessima secondo la loss vera. In particolare, il polinomio di grado 9 che passa perfettamente per tutti i punti osservati può comportarsi in modo catastrofico appena ci si sposta su input nuovi, molto peggio della semplice retta ottimizzata nello stesso modo. Non solo: la forma della loss empirica, e quindi la soluzione trovata, dipende dai punti che si hanno. Se arriva un nuovo punto, la soluzione polinomiale può cambiare in modo selvaggio, mentre la retta cambia di poco: i modelli più ricchi sono anche più instabili rispetto ai dati.
In parole semplici: non potendo misurare la distanza dalla regola vera, misuriamo quanto bene ricopiamo gli esempi che abbiamo. Ma “ricopiare benissimo gli esempi” e “avvicinarsi alla regola vera” non sono la stessa cosa: un modello molto flessibile può ricopiare tutto alla perfezione e sbagliare clamorosamente sui casi nuovi. Per questo allargare l’hypothesis space non è sempre un vantaggio.
Questa tensione, ottimizzare una loss che non è quella reale, è il problema centrale dell’apprendimento supervisionato: prende il nome di overfitting quando il modello aderisce al rumore dei dati invece che al segnale, e gran parte della teoria che segue nei prossimi capitoli (scelta della complessità del modello, validazione, regolarizzazione) è un modo di affrontarla.
3. I tre ingredienti di ogni algoritmo supervisionato#
Il quadro appena costruito si lascia riassumere in una ricetta: per progettare (o per capire) un qualunque algoritmo di apprendimento supervisionato bisogna specificare tre ingredienti.
Idea chiave: ogni algoritmo di apprendimento supervisionato è definito dalla combinazione di tre scelte: la rappresentazione (l’hypothesis space), la valutazione (la loss function) e l’ottimizzazione (il metodo di ricerca). Algoritmi diversi sono combinazioni diverse di questi tre ingredienti.
- Rappresentazione: la scelta della famiglia di funzioni con cui approssimare , cioè dell’hypothesis space. Equivale a scegliere il tipo di modello.
- Valutazione: la scelta del criterio con cui giudicare le ipotesi, cioè della loss function o della metrica di qualità.
- Ottimizzazione: la scelta dell’algoritmo con cui cercare, dentro l’hypothesis space, l’ipotesi che ottimizza il criterio di valutazione.
In parole semplici: per costruire un “impara-funzioni” servono sempre tre decisioni: che forma possono avere le soluzioni, come si dà il voto a una soluzione, e con quale procedura si cerca la soluzione col voto migliore. Ogni metodo che si incontrerà nel corso è una particolare terna di queste decisioni.
3.1 Rappresentazione: esempi di spazi delle ipotesi#
Esistono moltissime famiglie di modelli, ciascuna corrispondente a un hypothesis space con proprietà diverse. Tra le più importanti:
- modelli lineari;
- metodi instance-based (basati sulle istanze, cioè direttamente sui dati memorizzati);
- decision tree (albero di decisione);
- insiemi di regole;
- modelli grafici;
- reti neurali;
- processi gaussiani;
- support vector machines;
- ensemble di modelli (combinazioni di più modelli).
Le reti neurali, per esempio, sono oggi un modo estremamente popolare di approssimare una funzione ignota: anch’esse, come ogni altro modello, non sono altro che la definizione di un certo spazio di ipotesi entro cui cercare.
3.2 Valutazione: esempi di criteri#
Anche i criteri di valutazione sono numerosi, e si tratta in genere di metriche o punteggi che quantificano la bontà di un’approssimazione:
- accuratezza;
- precision e recall;
- errore quadratico;
- likelihood (verosimiglianza);
- probabilità a posteriori;
- costo o utilità;
- margine;
- entropia;
- divergenza di Kullback-Leibler (KL).
Una precisazione importante: non tutte queste quantità si prestano ugualmente bene a fare da loss function da ottimizzare. Alcune sono ottime per valutare un modello a posteriori ma scomode da ottimizzare direttamente; la metrica con cui si giudica il modello finito e la loss che l’algoritmo minimizza durante l’addestramento possono quindi essere diverse.
3.3 Ottimizzazione: esempi di metodi#
Le famiglie principali di metodi di ottimizzazione utilizzate in machine learning sono:
- Ottimizzazione combinatoria: per spazi di ipotesi discreti; esempio tipico, la ricerca greedy (usata per esempio nella costruzione dei decision tree);
- Ottimizzazione convessa: per spazi continui con loss ben strutturate; esempio tipico, il gradient descent (discesa del gradiente);
- Ottimizzazione vincolata: quando la ricerca è soggetta a vincoli; esempio tipico, la programmazione lineare (approcci di questo genere compaiono nelle support vector machines).
La scelta non è libera: il metodo di ottimizzazione deve essere adatto alla rappresentazione e alla loss scelte. È l’interazione tra i tre ingredienti a determinare il comportamento complessivo dell’algoritmo, e capire come i modelli vengono effettivamente ottimizzati aiuta a prevedere che cosa ci si può aspettare dal risultato finale.
4. Una tassonomia degli approcci supervisionati#
Gli algoritmi supervisionati si possono classificare lungo diverse dimensioni, indipendenti tra loro. Queste distinzioni torneranno più volte nei capitoli successivi; qui vengono introdotte come mappa concettuale.
4.1 Parametrico vs non parametrico#
- Parametrico: il modello ha un numero di parametri fissato e finito, deciso in anticipo dal progettista. Si sceglie a priori la forma dell’approssimazione (per esempio: “sarà una retta”) e l’apprendimento si riduce a trovare i valori ottimi dei parametri, lavorando dentro i vincoli fissati in partenza. La regressione lineare è l’esempio canonico.
- Non parametrico: il numero di parametri dipende dal training set. L’approssimazione si adatta ai dati, e la sua complessità cresce con essi; il modello risultante è fortemente dipendente dal dataset.
In parole semplici: parametrico significa “decido io prima la forma della soluzione e i dati riempiono le caselle”; non parametrico significa “lascio che siano i dati a determinare quanto complessa sarà la soluzione”.
4.2 Minimizzazione del rischio empirico vs strutturale#
- Rischio empirico (Empirical Risk Minimization): si minimizza l’errore calcolato sul training set, cioè la loss empirica vista nella sezione 2.3.
- Rischio strutturale (Structural Risk Minimization): si bilancia l’errore sul training set con la complessità del modello.
Il motivo della seconda strategia discende direttamente dal dilemma della sezione 2.3: dato che uno spazio di ipotesi più ampio non garantisce soluzioni migliori rispetto alla loss vera, un modo per mitigare il rischio è includere nella funzione obiettivo una penalità sulla complessità, così che il modello venga premiato non solo per aderire ai dati ma anche per restare semplice. Questa idea, anticipata qui, sarà sviluppata più avanti sotto il nome di regolarizzazione.
In parole semplici: minimizzare solo l’errore sugli esempi visti spinge verso modelli che li ricalcano troppo fedelmente. Aggiungere un “costo della complessità” è come dire: tra due spiegazioni ugualmente buone dei dati, preferisci la più semplice.
4.3 Diretto, discriminativo o generativo#
L’obiettivo resta sempre lo stesso: apprendere dai dati una funzione che mappa gli input negli output. Ci sono però tre strategie diverse per arrivarci, che differiscono in quanto “modellano” del fenomeno. Poiché nei dati c’è sempre incertezza, ha molto senso trattare il problema con strumenti probabilistici; le ultime due strategie fanno esattamente questo.
- Approccio diretto: si apprende direttamente da un’approssimazione di , in genere senza passare da un modello probabilistico. È l’impostazione vista finora: scegli , scegli la loss, ottimizza.
- Approccio discriminativo: si modella la densità condizionata , cioè la distribuzione di probabilità del target dato l’input. Una volta appresa, la si marginalizza per ottenere la previsione come media condizionata:
- Approccio generativo: si modella la densità congiunta , cioè la distribuzione di probabilità dell’intera coppia input-output. Da essa si può ricavare per inferenza la condizionata e quindi, ancora per marginalizzazione, la media condizionata .
La differenza sostanziale sta nel compromesso tra difficoltà e potenza. Modellare la congiunta è più difficile che modellare la sola condizionata; in cambio, chi conosce conosce in pratica tutto del fenomeno: può non solo predire il target, ma anche, per esempio, generare nuovi punti dati sintetici, e affrontare compiti che vanno oltre la pura previsione. L’approccio discriminativo è un compromesso molto usato in pratica: modella solo ciò che serve per predire, ed è per questo più semplice; l’approccio generativo è il più ambizioso e il più costoso.
In parole semplici: l’approccio diretto impara solo la risposta (“dato , il target è questo”); il discriminativo impara quanto è plausibile ogni risposta (“dato , il target vale con questa probabilità”); il generativo impara come nascono sia le domande sia le risposte (“ecco come sono distribuite insieme e ”), e per questo sa fare più cose, ma è più difficile da costruire.
4.4 Frequentista vs bayesiano#
- Frequentista: usa le probabilità per modellare il processo di campionamento dei dati; si stima un valore per le quantità ignote e l’aleatorietà riguarda il modo in cui i dati sono stati estratti.
- Bayesiano: usa la probabilità per modellare l’incertezza sulla stima stessa; la conoscenza appresa dai dati è essa stessa descritta da una distribuzione di probabilità, che quantifica quanto si è sicuri di ciò che si è imparato.
In parole semplici: per il frequentista il mondo ha parametri fissi e sono i dati a essere casuali; per il bayesiano anche la nostra conoscenza dei parametri è incerta, e la probabilità serve a misurare quell’incertezza.
5. Apprendimento induttivo e generalizzazione#
5.1 Che cosa significa “aver imparato”#
Tutto il framework poggia su una capacità che finora è rimasta implicita: la generalizzazione. Un modello che si limita a rispondere correttamente sugli esempi già visti non ha imparato nulla di interessante: ha memorizzato. Come per uno studente, saper rifare esattamente lo stesso esercizio mostrato in aula non dimostra apprendimento; lo dimostra saper risolvere un esercizio nuovo applicando ciò che si è astratto dai precedenti. L’apprendimento richiesto ai modelli è di tipo induttivo: dagli esempi particolari si estrae una regola generale, che viene poi applicata a situazioni mai osservate.
Idea chiave: apprendere significa generalizzare: estrarre dagli esempi una regola che funzioni su input nuovi. Questo è anche un obbligo pratico, perché quasi sempre è impossibile mostrare al modello tutte le situazioni possibili: sono troppe, o addirittura infinite.
In parole semplici: il modello viene giudicato su domande che non ha mai visto. Copiare le risposte degli esempi non basta: deve aver capito il criterio che le genera. È come studiare per un esame in cui gli esercizi saranno diversi da quelli svolti in classe.
5.2 Perché i dati da soli non bastano#
Un esempio giocoso, ma istruttivo, mostra quanto sia insidioso indurre la regola giusta da pochi dati. Si consideri un dataset di fotografie di persone, ciascuna etichettata con 0 oppure 1, e si provi a indovinare il concetto da apprendere. Guardando le prime immagini, l’ipotesi naturale è che l’etichetta distingua maschi e femmine: è semplice, ed è coerente con i dati visti. Poi arriva una nuova immagine etichettata che contraddice l’ipotesi: quella persona ha l’etichetta “sbagliata” rispetto alla regola ipotizzata. Si scopre così che il vero concetto era tutt’altro: per esempio, se il soggetto sorride oppure no o, in modo ancora più capzioso, se nella foto sono visibili i piedi della persona. E se nel dataset compare la foto di E.T., un elemento che non assomiglia a nulla di ciò che il training set rappresenta, semplicemente non c’è modo di rispondere in modo fondato.
Questo scherzo condensa tre problemi reali e permanenti dell’apprendimento supervisionato:
- Dati limitati: con pochi esempi, molte regole diverse sono ugualmente coerenti con i dati; non c’è modo, dai soli dati, di capire quale sia la vera funzione di decisione.
- Ambiguità della relazione input-output: il legame tra ciò che si osserva e l’etichetta può essere sottile, controintuitivo o mascherato da regolarità apparenti più salienti (come maschio/femmina rispetto a “piedi visibili”).
- Rappresentatività del dataset: il training set deve essere sufficientemente rappresentativo del problema; su input lontani da tutto ciò che è stato visto (il caso E.T.) il modello non ha basi per rispondere.
Per questo non deve stupire che i modelli sbaglino: anche con un algoritmo di ottimizzazione perfetto e un modello potentissimo, restano i limiti dei dati, la loro ambiguità e la loro eventuale scarsa rappresentatività.
In parole semplici: i dati non parlano da soli. Lo stesso insieme di esempi può essere spiegato da tante regole diverse, e la regola vera può non essere quella più ovvia. Se poi arriva un caso che non assomiglia a nessun esempio visto, il modello sta tirando a indovinare.
5.3 Il bias induttivo e il suo dilemma#
Se molte ipotesi sono coerenti con gli stessi dati, che cosa fa scegliere al modello l’una piuttosto che l’altra sui casi nuovi? La risposta è: le assunzioni incorporate nell’algoritmo, prima ancora di vedere i dati. La scelta dell’hypothesis space è la più importante di queste assunzioni: decidere di cercare tra le rette significa assumere che il fenomeno sia approssimativamente lineare. Questo insieme di assunzioni prende il nome di bias induttivo.
L’insieme delle assunzioni che, aggiunte ai dati di training, determinano il comportamento del modello sugli input mai osservati; comprende in primo luogo la scelta e la struttura dell’hypothesis space e le preferenze dell’algoritmo tra ipotesi ugualmente coerenti con i dati.
Il punto cruciale è che il bias induttivo non è un difetto da eliminare: è la condizione stessa della generalizzazione. Senza alcuna assunzione, i dati vincolano il modello solo sui punti osservati e non dicono nulla su quelli nuovi: un apprendista totalmente privo di bias potrebbe solo memorizzare. D’altra parte, il bias ha un costo, ed è il dilemma già incontrato nella sezione 2.3:
- un bias forte (hypothesis space piccolo, per esempio solo rette) rende l’apprendimento stabile e affidabile con pochi dati, ma rischia di escludere la vera dallo spazio di ricerca: il modello non potrà mai avvicinarsi abbastanza;
- un bias debole (hypothesis space enorme, per esempio polinomi di grado alto) può in linea di principio rappresentare , ma lascia troppe ipotesi compatibili con i dati: la loss empirica diventa una guida inaffidabile e la soluzione trovata oscilla selvaggiamente al variare del dataset.
Questo compromesso è legato alla quantità di dati disponibile: più dati si hanno, più ci si può permettere uno spazio di ipotesi ricco, perché i dati stessi vincolano maggiormente la ricerca. Capire e quantificare questo legame tra quantità di dati e complessità del modello ammissibile è uno dei fili conduttori dell’intera materia.
In parole semplici: per generalizzare bisogna scommettere su qualcosa (“il fenomeno è più o meno di questa forma”). Se la scommessa è troppo rigida, si sbaglia perché la realtà non ci sta dentro; se è troppo lasca, si sbaglia perché i dati non bastano a scegliere bene. Il mestiere consiste nel calibrare la scommessa sulla quantità e qualità dei dati.
5.4 Nessun algoritmo è il migliore in assoluto#
Dal dilemma del bias discende un’ultima conseguenza, tanto semplice quanto fondamentale: non può esistere un bias induttivo universalmente giusto, e quindi nemmeno un algoritmo di apprendimento universalmente migliore.
Mediando su tutti i possibili problemi di apprendimento, tutti gli algoritmi hanno le stesse prestazioni: nessun algoritmo supera un altro su ogni problema. Un algoritmo che funziona meglio di un altro su una classe di problemi funziona necessariamente peggio su un’altra classe.
La lettura corretta non è pessimista. I problemi che si incontrano in pratica non sono “tutti i problemi possibili”: hanno struttura, regolarità, continuità. Il successo di un metodo dipende da quanto il suo bias induttivo è adatto alla struttura del problema in esame. Ecco perché è essenziale conoscere molte famiglie di modelli e i loro ingredienti: la scelta va fatta caso per caso, sfruttando la conoscenza del dominio, e non affidandosi a un presunto metodo migliore in assoluto.
In parole semplici: non esiste l’algoritmo perfetto per tutto, come non esiste l’attrezzo perfetto per ogni lavoro. Ogni metodo incorpora assunzioni; funziona bene dove le assunzioni sono azzeccate e male dove non lo sono. Per questo serve capire i metodi, non solo usarli.
Glossario#
| Termine | Definizione |
|---|---|
| Apprendimento supervisionato | Paradigma in cui si apprende un’approssimazione di una funzione ignota a partire da un dataset di coppie input-output fornite da un supervisore. |
| Funzione target | La vera relazione, ignota, che mappa gli input nei target; è l’oggetto da approssimare. |
| Feature (attributo) | Variabile di input che descrive un esempio. |
| Target (label) | Variabile di output associata a un input; è la risposta corretta fornita dal supervisore. |
| Dataset | Insieme finito di coppie generate dalla funzione target, tipicamente con rumore. |
| Rumore | Componente di errore che sporca le osservazioni: ; condizione normale dei dati reali. |
| Classificazione | Task supervisionato in cui il target è discreto (un’etichetta tra un insieme finito). |
| Regressione | Task supervisionato in cui il target è una variabile continua. |
| Stima di probabilità | Task in cui il target è una probabilità, cioè un numero in ; regressione di tipo particolare, ibrida con la classificazione. |
| Hypothesis space | Sottoinsieme di tutte le funzioni possibili entro cui l’algoritmo cerca l’approssimazione di . |
| Ipotesi | Singola funzione candidata appartenente all’hypothesis space. |
| Loss function | Funzione che misura quanto un’ipotesi approssima male il target; l’apprendimento la minimizza. |
| Loss empirica | Loss calcolata solo sui dati disponibili (per esempio la somma degli errori quadratici); approssimazione della loss vera, che è incalcolabile perché è ignota. |
| Rappresentazione | Primo ingrediente di un algoritmo: la scelta della famiglia di modelli, cioè dell’hypothesis space. |
| Valutazione | Secondo ingrediente: la scelta della loss o della metrica con cui giudicare le ipotesi. |
| Ottimizzazione | Terzo ingrediente: il metodo di ricerca dell’ipotesi che minimizza la loss (combinatoria, convessa, vincolata). |
| Overfitting | Fenomeno per cui un modello aderisce al rumore del training set e peggiora su dati nuovi; tipico di spazi di ipotesi troppo ricchi rispetto ai dati. |
| Parametrico | Modello con numero di parametri fisso e finito, deciso in anticipo dal progettista. |
| Non parametrico | Modello il cui numero di parametri dipende dal training set e si adatta ai dati. |
| Rischio empirico | Errore misurato sul training set; la sua minimizzazione è l’Empirical Risk Minimization. |
| Rischio strutturale | Criterio che bilancia errore di training e complessità del modello (Structural Risk Minimization). |
| Approccio diretto | Strategia che apprende direttamente un’approssimazione di dai dati, in genere senza modello probabilistico. |
| Approccio discriminativo | Strategia che modella la densità condizionata e predice tramite la media condizionata. |
| Approccio generativo | Strategia che modella la densità congiunta ; più difficile, ma consente anche di generare nuovi dati. |
| Frequentista | Impostazione in cui la probabilità modella il processo di campionamento dei dati. |
| Bayesiano | Impostazione in cui la probabilità modella l’incertezza sulla stima appresa. |
| Generalizzazione | Capacità di un modello di comportarsi bene su input mai visti durante l’addestramento. |
| Apprendimento induttivo | Processo che estrae dagli esempi particolari una regola generale applicabile a casi nuovi. |
| Bias induttivo | Insieme delle assunzioni che, insieme ai dati, determinano le predizioni su input nuovi; è necessario per generalizzare. |
| No Free Lunch | Principio per cui, mediando su tutti i problemi possibili, nessun algoritmo è migliore di un altro: la scelta del metodo dipende dal problema. |